精通Linux系列二十三:主机网络信息
点击关注公众号,AI&编程干货及时送达
命令 | 含义 |
host | 查找主机名、IP地址和DNS信息。 |
whois | 查找互联网域名的注册人。 |
ping | 检查远程主机是否可达。 |
traceroute | 查看到远程主机的网络路径。 |
当处理远程计算机时,你可能想了解更多关于它们的信息。它们的所有者是谁?IP地址是什么?它们在网络中的位置在哪里?
host
stdin stdout - file -- opt --help --version
host [选项] name [服务器]
host
命令通过查询DNS来查找远程机器的主机名或IP地址:
→ host www.ubuntu.org
www.ubuntu.com的地址是 91.189.90.41
→ host 91.189.90.41
41.90.189.91.in-addr.arpa 域名指向
jujube.canonical.com.
它还可以找出更多信息:
→ host -a www.ubuntu.org
尝试 "www.ubuntu.org"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR ...
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, ...
;; QUESTION SECTION:
;www.ubuntu.org. IN ANY
;; ANSWER SECTION:
www.ubuntu.org. 60 IN CNAME ubuntu.org.
尽管这个输出的完整讨论超出了本书的范围。最后一个可选的"服务器"参数指定了查询的特定名称服务器:
→ host www.ubuntu.org ns2.dondominio.com
使用的域名服务器:
名称: ns2.dondominio.com
地址: 93.93.67.2#53
别名:
www.ubuntu.org 是 ubuntu.org 的别名。
ubuntu.org的地址是 147.83.195.55
ubuntu.org 的邮件由 10 mx2.upc.es 处理。
ubuntu.org 的邮件由 10 mx1.upc.es 处理。
要查看所有选项,只需键入host
即可。
实用选项
-a | 显示所有可用的信息。 |
-t | 选择名称服务器查询的类型:A ,AXFR ,CNAME ,HINFO ,KEY ,MX ,NS ,PTR ,SIG ,SOA 等等。 |
以下是使用 -t
选项查找 MX 记录的示例:
→ host -t MX redhat.com
redhat.com 的邮件由 5 mx1.redhat.com处理。
redhat.com 的邮件由 10 mx2.redhat.com处理。
如果 host
命令不能满足你的需求,试试 dig
,这是另一个强大的 DNS 查找工具。你可能也会遇到 nslookup
命令,虽然它已经大部分过时,但仍然可以在一些 Linux 和 Unix 系统上找到。
whois
stdin stdout - file -- opt --help --version
whois [选项] 域名
whois
命令查找互联网域名的注册情况:
→ whois linuxmint.com
...
域名:LINUXMINT.COM
注册商:TUCOWS DOMAINS INC.
...
行政联系人:
Lefebvre, Clement
...
技术联系人:
Hostmaster, Servage
...
创建日期:2006年6月7日
到期日期:2016年6月7日
...
以及注册商提供的几屏幕的法律免责声明。
实用选项
-h 注册商 | 在给定的注册商的服务器上执行查找。例如,whois -h whois.networksolutions.com yahoo.com 。 |
-p 端口 | 查询给定的TCP端口,而不是默认的43端口(whois 服务)。 |
ping
stdin stdout - file -- opt --help --version
ping [选项] host
ping
命令告诉你远程主机是否可达。它向远程主机发送小包(确切地说是ICMP包)并等待响应:
→ ping google.com
PING google.com (74.125.226.144) 来自192.168.0.10 :
56(84) bytes of data.
64 bytes from www.google.com (74.125.226.144):
icmp_seq=0 ttl=49 time=32.390 msec
64 bytes from www.google.com (74.125.226.144):
icmp_seq=1 ttl=49 time=24.208 msec
^C
``` google.com ping statistics ```
2个包已发送,2个包已接收,
0%的包丢失
往返时间最小/平均/最大/mdev =
24.208/28.299/32.390/4.091 ms
实用选项
-c N | 最多ping N 次。 |
-i N | 在ping之间等待 N 秒(默认1秒)。 |
-n | 在输出中打印IP地址,而不是主机名。 |
traceroute
stdin stdout - file -- opt --help --version
traceroute [options] host [packet_length]
traceroute
命令会打印从您的本地主机到远程主机的网络路径,以及数据包在路径中传输所需的时间:
→ traceroute yahoo.com
1 server.mydomain.com (192.168.0.20) 1.397 ms ...
2 10.221.16.1 (10.221.16.1) 15.397 ms ...
3 router.example.com (92.242.140.21) 4.952 ms ...
...
...
16 p6.www.dcn.yahoo.com (216.109.118.69) * ...
路径中的每个主机会发送三个“探测包”,并报告返回时间。如果经过五秒钟没有响应,则traceroute
会打印一个星号。另外,由于防火墙阻止或其他各种原因,traceroute
可能会被阻止或无法继续进行,此时它会打印一个符号:
符号 | 含义 |
!F | 需要分段。 |
!H | 主机不可达。 |
!N | 网络不可达。 |
!P | 协议不可达。 |
!S | 源路由失败。 |
!X | 禁止通信的管理规定。 |
! N | ICMP不可达代码 *N *。 |
默认数据包大小为40字节,但您可以使用最后的可选参数 packet_length
来更改此值(例如,traceroute myhost 120
)。
有用的选项
-n | 数字模式:打印IP地址而不是主机名。 |
-w N | 将超时时间从五秒更改为 N 秒。 |
推荐阅读
你好,我是拾叁,7年开发老司机、互联网两年外企5年。怼得过阿三老美,也被PR comments搞崩溃过。这些年我打过工,创过业,接过私活,也混过upwork。赚过钱也亏过钱。一路过来,给我最深的感受就是不管学什么,一定要不断学习。只要你能坚持下来,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯和编程知识,帮你积累弯道超车的资本。